Chris Lattner
c6d91c0f6d
Add new API to rewrite one stmt/expr with another.
...
llvm-svn: 43101
2007-10-17 22:35:30 +00:00
Chris Lattner
9515625d0c
Add rewriter support for @encode expressions. For example,
...
we currently turn:
c = @encode(char *)[2] + 4;
into:
c = "foo"[2] + 4;
Right now the foo string is hard coded, but you can imagine a world
where it wouldn't be :)
llvm-svn: 43093
2007-10-17 21:28:00 +00:00
Chris Lattner
37390bed4d
Fix location processing of @encode: the range should include the @ sign.
...
@selector probably gets this wrong also.
llvm-svn: 43048
2007-10-16 22:51:17 +00:00
Chris Lattner
a7c19feca2
Add a new Rewriter::getRangeSize method.
...
Rename SourceRange::Begin()/End() to getBegin()/getEnd() for
consistency with other code.
Start building the rewriter towards handling @encode.
llvm-svn: 43047
2007-10-16 22:36:42 +00:00
Chris Lattner
0bd1c97293
Push the rewriter forward a bit more. Now it rewrites
...
#import to #include's as a test.
llvm-svn: 43041
2007-10-16 21:07:07 +00:00
Chris Lattner
6a91cc03ad
haha, my devious plot is complete:
...
$ clang rewrite.c -rewrite-test
prints:
int foo() {
b: foo();
f: foo();
foo();
}
for:
int foo() {
b: foo();
f: foo();
foo();
}
amazing.
llvm-svn: 42944
2007-10-13 00:46:29 +00:00
Chris Lattner
2fcf1b83c1
another step forward in rewriter stuff. This still has
...
some incredibly subtle details that I'm working on getting
right.
llvm-svn: 42940
2007-10-13 00:11:23 +00:00
Chris Lattner
16a0de468f
Push the rewriting APIs along. Build a trivial client that replaces tabs
...
with x's for now. The APIs are all unimplemented, so it doesn't do
anything yet! :)
llvm-svn: 42868
2007-10-11 18:38:32 +00:00
Chris Lattner
e99c8329af
add scafolding to play around with and bring up the code rewriter.
...
llvm-svn: 42855
2007-10-11 00:43:27 +00:00