diff options
Diffstat (limited to 'Lisp/name-conversion.lisp')
| -rw-r--r-- | Lisp/name-conversion.lisp | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/Lisp/name-conversion.lisp b/Lisp/name-conversion.lisp index 4ff637c..0c294fb 100644 --- a/Lisp/name-conversion.lisp +++ b/Lisp/name-conversion.lisp @@ -114,3 +114,20 @@        (concatenate 'string                     "%"                     (symbol-name (objc-class-name->symbol meta-class-name))))))) + + +(defun slot-name->foreign-slot-name (slot-name) +  (let* ((string (symbol-name slot-name)) +         (case-converted-slot-name +          (ecase (readtable-case *readtable*) +            (:preserve string) +            (:invert (cond ((notany #'lower-case-p string) +                            (string-downcase string)) +                           ((notany #'upper-case-p string) +                            (string-upcase string)) +                           (t string))) +            (:upcase (if (notany #'lower-case-p string) +                         (string-downcase string) +                         string)) +            (:downcase string)))) +  (substitute #\_ #\- case-converted-slot-name))) | 
