(in-package "CL-USER") (defpackage "CL-OBJC-UTILS" (:use "COMMON-LISP") (:export "WITH-GENSYMS" "CFFI-TYPE-P" "SIMPLE-REPLACE-STRING" "SPLIT-STRING" "ENSURE-LIST" "INTERPOSE" "LOOKUP-SAME-SYMBOL-NAME" "COMPOSITE-MAPCAR" "GENSYM-LIST")) (defpackage "OBJC-CFFI" (:use "COMMON-LISP" "CFFI" "CL-OBJC-UTILS") (:export "IMPORT-FRAMEWORK" "COMPILE-FRAMEWORK" "FRAMEWORK-BINDINGS-PATHNAME" "*FRAMEWORK-DIRECTORY*" "DEFINE-OBJC-STRUCT" "DEFINE-OBJC-FUNCTION" "OBJC-STRUCT-SLOT-VALUE" "OBJC-ID" "OBJC-CLASS-POINTER" "OBJC-SEL" "OBJC-OBJECT" "GET-CLASS-LIST" "GET-CLASS-ORDERED-LIST" "OBJC-GET-CLASS" "GET-INSTANCE-METHODS" "GET-CLASS-METHODS" "CLASS-IVARS" "CLASS-GET-INSTANCE-VARIABLE" "CLASS-NAME" "CLASS-HAS-PUBLIC-IVARS" "SUPER-CLASSES" "CLASS-GET-INSTANCE-METHOD" "CLASS-GET-CLASS-METHOD" "METACLASS" "OBJC-NIL-CLASS" "OBJC-NIL-OBJECT" "OBJC-SELECTOR" "SEL-NAME" "SEL-GET-UID" "SEL-IS-MAPPED" "MAKE-IVAR" "IVAR-NAME" "IVAR-TYPE" "PRIVATE-IVAR-P" "OBJ-CLASS" "OBJC-NIL-OBJECT-P" "GET-IVAR" "SET-IVAR" "PROTOCOLS" "PROTOCOL-NAME" "PROTOCOL-INSTANCE-METHODS" "PROTOCOL-CLASS-METHODS" "PROTOCOL-INCLUDED-PROTOCOLS" "METHOD-TYPE-SIGNATURE" "METHOD-SELECTOR" "METHOD-GET-SIZE-OF-ARGUMENTS" "METHOD-GET-ARGUMENT-INFO" "WITH-SUPER" "TYPED-OBJC-MSG-SEND" "UNTYPED-OBJC-MSG-SEND" "CLEAR-METHOD-CACHES" "ADD-OBJC-METHOD" "ADD-OBJC-CLASS" "ENSURE-OBJC-CLASS" "SYMBOL-TO-OBJC-CLASS-NAME" "OBJC-CLASS-NAME-TO-SYMBOL")) (defpackage "CL-OBJC" (:use "COMMON-LISP" "OBJC-CFFI" "CL-OBJC-UTILS") (:export "INVOKE" "SLET*" "SLET" "DEFINE-OBJC-METHOD" "DEFINE-OBJC-CLASS" "WITH-IVAR-ACCESSORS" "OBJC-LET" "OBJC-LET*" "OBJC-LETR" "OBJC-LETR*" "WITH-OBJECT" "*ACRONYMS*" "SYMBOLS-TO-OBJC-SELECTOR" "OBJC-SELECTOR-TO-SYMBOLS" "SELECTOR")) (defpackage "OBJC-CLOS" (:use "COMMON-LISP" "OBJC-CFFI" "CL-OBJC" "CL-OBJC-UTILS") (:export "UPDATE-CLOS-BINDINGS" "DELETE-CLOS-BINDINGS" "ADD-CLOS-METHOD" "ADD-CLOS-CLASS" "OBJC-CLOS-CLASS" "OBJC-GENERIC-FUNCTION" "*AUTOMATIC-CLOS-BINDINGS-UPDATE*" "OBJC-SELECTOR-TO-CLOS-SYMBOL" "CLOS-SYMBOL-TO-OBJC-SELECTOR" "META" "CONVERT-RESULT-FROM-OBJC")) (defpackage "OBJC" (:export "OBJC-ID" "RECEIVER")) (defpackage "OBJC-TYPES" (:use "COMMON-LISP" "YACC") (:export "PARSE-OBJC-TYPESTR" "OBJC-UNKNOWN-TYPE" "TYPEMAP" "ENCODE-TYPES" "ENCODE-TYPE" "OBJC-FOREIGN-TYPE-SIZE")) (defpackage "OBJC-READER" (:use "COMMON-LISP" "OBJC-CFFI" "CL-OBJC-UTILS") (:export "ACTIVATE-OBJC-READER-MACRO" "RESTORE-READTABLE" "*ACCEPT-UNTYPED-CALL*")) (defpackage "CL-OBJC-EXAMPLES" (:use "COMMON-LISP" "CL-OBJC" "OBJC-CFFI" "OBJC-READER" "OBJC-CLOS") (:export "LISP-HELLO-WORLD" "CONVERTER" "CIRCLE-VIEW")) (defpackage "CL-OBJC-USER" (:use "COMMON-LISP" "CL-OBJC" "OBJC-CFFI" "OBJC-READER" "OBJC-CLOS")) ;; Copyright (c) 2007, Luigi Panzeri ;; All rights reserved. ;; ;; Redistribution and use in source and binary forms, with or without ;; modification, are permitted provided that the following conditions are ;; met: ;; ;; - Redistributions of source code must retain the above copyright ;; notice, this list of conditions and the following disclaimer. ;; ;; - Redistributions in binary form must reproduce the above copyright ;; notice, this list of conditions and the following disclaimer in the ;; documentation and/or other materials provided with the distribution. ;; ;; - The name of its contributors may not be used to endorse or ;; promote products derived from this software without specific ;; prior written permission. ;; ;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.