Commit Graph

28 Commits

Author SHA1 Message Date
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
d78e055008 Handle Objective-C methods with variadic arguments. 2019-04-29 16:14:45 -04:00
57232548fa Go type declarations should point to C typedefs. Add parser for
C enum types.
2019-04-29 13:31:13 -04:00
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
c0c17e88d1 Fix to go type declarations. 2019-04-29 10:37:43 -04:00
500b457d32 Fix type wrapping and procesing so duplicate types do not get
declared.
2019-04-27 22:24:05 -04:00
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
6135381cc7 Allow #pragma directives to be provided in the config file. 2019-04-26 15:41:29 -04:00
009a974a1a Rename to nswrap, put configuration in a toml file, allow imports
and sysimports.
2019-04-26 15:34:36 -04:00
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
b93ba4c01f Fix handling of signed, unsigned, complex, and long long types
in Go type declarations.
2019-04-26 14:15:18 -04:00
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
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
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
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
885658b67b Implement new type system. Working wrapper for simple Objective-C
interfaces.
2019-04-23 15:48:11 -04:00
4867bb80f4 Memoize types/TypeName() for performance.
types/Parse() returns an error if the parse is incomplete.
2019-04-18 14:40:02 -04:00
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
b7134bedb7 Restructure the type parsers. Remove struct declaration parsers. 2019-04-18 11:22:53 -04:00
6955d79702 Bug fix to stripAbstract(), some minor parser restructuring. 2019-04-18 10:21:03 -04:00
e7270e95cf Add type parsing infrastructure. 2019-04-18 09:38:46 -04:00
0b0b73c6bd Handle class methods. 2019-04-11 17:00:36 -04:00
3ecb3b1eeb Fix types in c and go parameter lists. 2019-04-11 13:09:02 -04:00
9e3c7c2ce8 Fix objective-c method calls. 2019-04-11 12:00:10 -04:00
74f4073d35 Improved type handling. 2019-04-11 11:46:24 -04:00
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
bcb4a0680d Identify methods from interfaces and categories, determine their
parameter and return types.
2019-04-09 23:19:49 -04:00
6a9c5c2811 Initial commit. 2019-04-09 11:52:21 -04:00