Commit Graph

100 Commits

Author SHA1 Message Date
Greg e7e2c2c7b6 Begin moving the bluetooth example to the new delegates system. 2019-05-09 22:33:06 -04:00
Greg 44b3b75e23 Complete implementation of delegates. Update app example with an
NSApplicationDelegate.
2019-05-09 22:05:04 -04:00
Greg 0d2321d516 Add autorelease helpers. 2019-05-09 13:33:28 -04:00
Greg b00ecd4ac0 Switch from toml to yaml for configuration files. Begin scaffolding
for Protocols and Delegates.
2019-05-09 12:25:45 -04:00
Greg cccbfbbc00 Autorelease all objective-C objects constructed using "alloc".
Clean up type-related comments in generated code. Do not use
pointers to Go interfaces as receivers, use pointer to Id instead.
2019-05-09 08:52:35 -04:00
Greg ea34821fe6 Add a button to examples/app. 2019-05-07 15:49:43 -04:00
Greg 1c5c61308c Add SelectorHelpers() so you can send named selectors to Objective-C. 2019-05-07 15:17:23 -04:00
Greg 8ed05fb451 Work around cgo (or Clang dwarf) bug with incorrect struct size
calculation by returning void pointers for NS object constructors.
Expand examples/app to start building menus.
2019-05-07 14:48:06 -04:00
Greg 511f2f1968 Improve type handling for enums. Handle "__kindof" qualifiers.
Add examples/app. Allow VisibilityAttr "Hidden".
2019-05-06 13:21:36 -04:00
Greg 959b87342e Return Golang bools from Objective-C functions that return BOOL.
Move nswrap command to cmd/nswrap.
2019-05-06 09:00:38 -04:00
Greg 717c7e76fe Change name of New* functions to *Alloc to mimic Objective-C's
nested alloc/init call idiom.
2019-05-04 23:32:57 -04:00
Greg eced251710 Create GoString helper methods for anything that has a "WithString"
method. Multiple bug fixes in type system, fixed parsing of id,
instancename and instancetype, allow NullableAnnotations after
generic lists (e.g. "id<ObjectType> _Nullable"). Helper function
to identify types that are function pointers.
2019-05-03 13:14:30 -04:00
Greg 8ea3d57cf0 Fix bug in examples/bluetooth/ble/ble_delegate: deleted references
to unused scanCallback property.
2019-05-02 14:22:20 -04:00
Greg c5a523a8b8 Add bluetooth example. 2019-05-02 14:17:11 -04:00
Greg 758ea40679 Add constants for C enum types. Add NSEnumerator helper. Fix
bugs in Go class names. Add "Frameworks" option to nswrap.toml.
Improve handling of ast.EnumDecl and ast.EnumConstantDecl.
2019-05-02 14:14:29 -04:00
Greg 9b71889a69 Include type qualifiers and nullability attributes in Objective-C
function return types. Add NSEnumerator to examples/foundation.
2019-05-01 13:58:20 -04:00
Greg 11366be6d0 Convert *Id to any wrapped type. Shorten names for class methods
that return an instance of the class. Fix return types for Go
interfaces.
2019-05-01 12:34:29 -04:00
Greg 57ad898945 Bug fix: Process types before converting to go function parameter
lists.
2019-05-01 11:01:50 -04:00
Greg be92b200ad Handle functions identified by regexp in nswrap.toml config
file. Handle inherited class methods.
2019-05-01 10:58:29 -04:00
Greg 380fee39bf Update foundation example to query whether the array contains
specified objects.
2019-04-30 10:34:56 -04:00
Greg e6232bdccb Fix VaArgs configuration. 2019-04-30 09:21:54 -04:00
Greg 3573aa9144 Change Go types to simple unsafe Pointers instead of pointers
wrapped in structs. It could be possible to handle pointers to
pointers now.
2019-04-30 09:14:25 -04:00
Greg 0e89d2c29a Do not memoize type parser as it causes bugs with typedefs,
'instancetype' etc. Clean up typedefs and type parameters as
soon as Types are created.
2019-04-30 06:59:05 -04:00
Greg d78e055008 Handle Objective-C methods with variadic arguments. 2019-04-29 16:14:45 -04:00
Greg 57232548fa Go type declarations should point to C typedefs. Add parser for
C enum types.
2019-04-29 13:31:13 -04:00
Greg c03e37bd54 Make a Go Interface instead of a struct for top level objects.
Use a new struct Id as a concrete version of that type.
2019-04-29 11:46:48 -04:00
Greg c0c17e88d1 Fix to go type declarations. 2019-04-29 10:37:43 -04:00
Greg 500b457d32 Fix type wrapping and procesing so duplicate types do not get
declared.
2019-04-27 22:24:05 -04:00
Greg 977a09e77e Better handling of multiple classes and input files. Handle
Objective C type parameter declarations. Check Typedefs when
determining if a Type is a pointer or a function.
2019-04-26 22:44:30 -04:00
Greg 6135381cc7 Allow #pragma directives to be provided in the config file. 2019-04-26 15:41:29 -04:00
Greg 009a974a1a Rename to nswrap, put configuration in a toml file, allow imports
and sysimports.
2019-04-26 15:34:36 -04:00
Greg ead1623d4b Eliminate unnecessary code from wrap/main.go. Include full attributes
in return types of C functions to reduce compiler warnings.
2019-04-26 15:08:44 -04:00
Greg b93ba4c01f Fix handling of signed, unsigned, complex, and long long types
in Go type declarations.
2019-04-26 14:15:18 -04:00
Greg 4f260dda0e Fix handling of id and void* types. Add helper functions to convert
char* to and from Go strings. Parse block (^) types. Skip methods
with functions as parameters. Fix passing pointers go C code.
2019-04-26 14:08:43 -04:00
Greg 98e19ca726 Fix handling of wrapped types. Use new type system for go
function declarations. Working wrapper for simple test case.
2019-04-26 10:56:00 -04:00
Greg e143dbb6a7 Fixed type wrapping, further conversion to new type system. The
Go side looks pretty good at this point.
2019-04-26 10:07:34 -04:00
Greg fb21881a8b Add type conversion functions to types package. Start moving the
wrapper to the new type system. Intermediate commit before I rip
out the old stuff, not working yet.
2019-04-26 09:04:53 -04:00
Greg 885658b67b Implement new type system. Working wrapper for simple Objective-C
interfaces.
2019-04-23 15:48:11 -04:00
Greg 4867bb80f4 Memoize types/TypeName() for performance.
types/Parse() returns an error if the parse is incomplete.
2019-04-18 14:40:02 -04:00
Greg da2008c597 Function to print text version of a C TypeName. Fix bugs in Nest(),
ZeroOrMore(), OneOrMore() and Objective-C Generics parsers.
2019-04-18 14:04:01 -04:00
Greg b7134bedb7 Restructure the type parsers. Remove struct declaration parsers. 2019-04-18 11:22:53 -04:00
Greg 6955d79702 Bug fix to stripAbstract(), some minor parser restructuring. 2019-04-18 10:21:03 -04:00
Greg e7270e95cf Add type parsing infrastructure. 2019-04-18 09:38:46 -04:00
Greg 0b0b73c6bd Handle class methods. 2019-04-11 17:00:36 -04:00
Greg 3ecb3b1eeb Fix types in c and go parameter lists. 2019-04-11 13:09:02 -04:00
Greg 9e3c7c2ce8 Fix objective-c method calls. 2019-04-11 12:00:10 -04:00
Greg 74f4073d35 Improved type handling. 2019-04-11 11:46:24 -04:00
Greg 2fbd9134a0 Generate go and objc wrapper functions. Translate classes into wrapped
unsafe.Pointer() instances. Embed super-class to simulate inheritance
and hold pointers only at the base class.
2019-04-10 14:00:48 -04:00
Greg bcb4a0680d Identify methods from interfaces and categories, determine their
parameter and return types.
2019-04-09 23:19:49 -04:00
Greg 6a9c5c2811 Initial commit. 2019-04-09 11:52:21 -04:00