Objective-C Class, Protocol and Category generation

Hi Everyone,

Here is the next in the series of ObjC code generation diffs. I've also attached the little Objective-C program I've been using to test it.

Still to do:
- Constant strings (this will be quite major, since constant objective-c strings are being lowered to CF strings far too early at the moment and a lot of code is likely to need to be moved around).

- Message sends to super (not difficult, I just haven't got around to it yet)

- The corresponding implementation for the Étoilé runtime (and, presumably, someone wants to write one for the Apple ones too)

- Objective-C 2.0 stuff (much of ObjC 2 is syntactic sugar - or salt, depending on your perspective - and should be handled nearer the front, but some things require runtime support).


clang.diff (45.5 KB)

test.m (1.56 KB)

Oh, and currently selectors are looked up every message send, while they should be looked up at module load time, but this is a relatively small change now that the Module_t is generated.