[cfe-dev] Parsing objective-c message expressions
steve naroff
snaroff at apple.com
Tue Jul 29 09:53:31 PDT 2008
On Jul 29, 2008, at 8:11 AM, Rajesh Karmani wrote:
> Hi,
> I have just started looking at Clang and found it to be a great tool.
> I also came across the RewriteObjc module and wanted to play around
> with
> how the Objective-C messages are "rewritten".
>
> I have not been able to figure out how an assignment statement like:
>
> c = [obj execute];
>
> is parsed in Clang (what functions are called?). I would like to
> rewrite
> such statements differently from
>
> [obj execute];
>
> where nothing is being returned. Could someone please guide me which
> parts of code should I be looking at?
>
>
Here is a brief example...
snaroffBook$ cat xx.m
#import <Foundation/NSObject.h>
void f(NSObject *m) {
NSObject* c = [m execute];
}
snaroffBook$ ../../Debug/bin/clang -rewrite-objc xx.m
#include <Foundation/NSObject.h>
void f(NSObject *m) {
NSObject* c = ((id (*)(id, SEL, ...))(void *)objc_msgSend)((id)m,
sel_registerName("execute"));
}
The actual rewriter code is in RewriteObjC.cpp.
snaroff
> regards,
> rajesh
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list