Commit Graph

7 Commits

Author SHA1 Message Date
Jonas Maebe
d6e7023038 * automatically comment out methods that take blocks as parameters or return
them
  * handle inline protocol definitions in parameter lists (replace id<protocol>
    with protocol, and class<protocol[,protocol,..]> with class), and made
    some fixes to this support for fields (many "id" fields/parameters are
    now protocols)
  * fix from Phil Hess for parsing some read-only properties
  * also translate ..._BUT_DEPRECATED macros (without any "_IN_VERSION..."
    coming after it) into "deprecated" modifiers
  * several fixes for handling deprecation macros (in several cases, half the
    macro was mangled into the name of the symbol itself)
  * default now to parsing the iOS 4.2 SDK headers, and fixed passing an
    alternate SDK on the command line to make-ios-headers.sh
  * updated Cocoa headers as parsed by the new parser, and with the headers
    from Mac OS X 10.6.5/Safari 5.0.2 (contains some WebKit updates)

git-svn-id: trunk@16908 -
2011-02-11 21:26:24 +00:00
Jonas Maebe
3ca3276400 * changed syntax of external objcclasses (see wiki/FPC_PasCocoa). Another
change is that it is now also allowed to specify an external name for
    formal external class definitions, but if they are later mixed with
    regular class definitions the external names have to match.
   o because the "external" status of methods is now set while parsing the
     class rather than afterwards, some procdir compatibility checks had to
     be inlined because they only have to be performed for 
  * also adapted the syntax for external cppclasses in the same way
  * fixed return type of NSObject.retainCount and NSObject.hash
    (NSUInteger instead of cint)
  * moved "patches" directory from cocoaint/src to cocoaint/utils/cocoa-skel
    so they are used by the conversion script when re-parsing the headers
  * updated Objective-C header parser script to
   o use the new external class syntax
   o not write inheritance information for root classes (NSObject, NSProxy)
   o use internal translation tables for some conflicting method names that
    are named specially in objcbase.pp
   and updated parsed headers
  * fixed rtl/inc/objcbase.pp and tests to conform to the new external class
    syntax

git-svn-id: trunk@16684 -
2011-01-02 14:50:46 +00:00
Jonas Maebe
c132727caf * updated to Mac OS X 10.6 SDK
* generated with version 2.1.2 of the conversion script, with many
    improvements (script and instructions to regenerate headers will
    be committed separately)
   o QuartzCore framework translation
   o categories are no longer merged into classes, but separate
   o corrected several C->Pascal type definitions
   o handle pointer types for parameters, return types and property types 
   o handle struct/class fields that are arrays or pointers
   o handle pointers to id
   o handle external functions that return "void *" (they were parsed as
     procedures)
   o handle anonymous classes (@class NSAnonType, such as CIImage) using
     the "NSAnonType = objcclass; external;" syntax
   o corrected handling of opaque structs
   o fixed parsing of function pointer types
   o instance-bitfields that do not appear in a struct are now recognised
   o bitpacked structs are now translated into bitpacked records (but only
     if they only contain bitpacked fields)
   o C macros indicating deprecation are now translated into "deprecated"
     modifiers for methods/variables/functions/properties
   o no longer ignore deprecated categories, because some categories are
     deprecated in Mac OS X 10.5/10.6, and we want to support writing code
     for older systems too
   o several fixes to property and enum parsing

git-svn-id: trunk@16521 -
2010-12-08 11:27:05 +00:00
josef
a2c6e6e65d * User patches are now working
* Pointers to classes are no longer untyped.

git-svn-id: branches/objc@13786 -
2009-10-01 14:44:45 +00:00
josef
5a669ebd54 * Procedures with varargs are parsed properly.
* Fixed macro that was causing CFString constants to fail.
  * Removed MacOSAll dependency from iPhoneAll.pas.
  * More enumerations are parsed in all frameworks.
  * Properties that returned values in iPhone headers are now fixed.
  * Properties from categories are included now.
  + Users can add hand parsed patches by putting them in the patches directory and they will be included during parsing.

git-svn-id: branches/objc@13770 -
2009-09-28 10:39:28 +00:00
josef
d07a901c10 + Parser support for UIKit has been added and iPhoneAll.pas
* Pass by reference arguments are translated as pointers instead of var
  * Variable length arguments are parsed with the varargs keyword instead of array of const
  + Added IVarSize.pas which prints the size of ivar's in all AppKit/Foundation classes.
  + There are now "null" defined macros for IBOutlet and IBAction like in Cocoa. Use these instead of comments and they may become useful in the future for InterfaceBuilder support.
  + Foundation.pas is included which can be used for command line tools without AppKit.

git-svn-id: branches/objc@13754 -
2009-09-22 01:03:50 +00:00
Jonas Maebe
912fbbec79 + Cocoa interfaces and parser by Ryan Joseph
git-svn-id: branches/objc@13688 -
2009-09-10 18:50:01 +00:00