diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-12 12:25:45 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-12 12:25:45 +0100 |
commit | 7a417274fbc5913ccc288f06842345ff494363df (patch) | |
tree | 36953a5480113a7d2b736ca9e6f4788f2022516b /Lisp/constant-data.lisp | |
parent | 5fb8580c2175923860dfae7ce9d7029453ca3fa3 (diff) |
Add function PRINT-TYPESPEC.
darcs-hash:8b64d370e2168812dfd3dea46c02fdffb8461252
Diffstat (limited to 'Lisp/constant-data.lisp')
-rw-r--r-- | Lisp/constant-data.lisp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Lisp/constant-data.lisp b/Lisp/constant-data.lisp index 85b5584..7c7176d 100644 --- a/Lisp/constant-data.lisp +++ b/Lisp/constant-data.lisp @@ -72,6 +72,37 @@ (complex . #\j))) +(defparameter *objcl-typespec-map* + '((id . id) + (objective-c-class . class) + (exception . exc) + (selector . sel) + (:char . chr) + (:unsigned-char . uchr) + (:short . sht) + (:unsigned-short . usht) + (:int . int) + (:unsigned-int . uint) + (:long . lng) + (:unsigned-long . ulng) + (:long-long . lng-lng) + (:unsigned-long-long . ulng-lng) + (:float . flt) + (:double . dbl) + (bit-field . bfld) + (:boolean . bool) + (:void . void) + (:unknown . undef) + (pointer . ptr) + (:string . charptr) + (:atom . atom) + (array . (ary-b ary-e)) + (union . (union-b union-e)) + (struct . (struct-b struct-e)) + (vector . vector) + (complex . complex))) + + (defparameter *objcl-type-map* '((id . id) (class . objective-c-class) @@ -128,3 +159,9 @@ (declaim (ftype (function (symbol) symbol) type-name->c-type)) (defun type-name->c-type (type-name) (cdr (assoc type-name *objcl-c-type-map*))) + +(defun typespec-name->type-name (typespec-name) + (cdr (assoc typespec-name *objcl-typespec-map*))) + +(defun typespec-name->type-id (typespec-name) + (type-name->type-id (typespec-name->type-name typespec-name))) |