I was looking for a tool that can convert C code expressions for the form:
a = (A) ? B : C;
into the ‘default’ syntax with if/else statements:
if (A)
a = B
else
a = C
Does someone know a tool that’s capable to do such a transformation?
I work with GCC 4.4.2 and create a preprocessed file with -E but do not want such structures in it.
Edit:
Following code should be transformed, too:
a = ((A) ? B : C)->b;
Coccinelle can do this quite easily.
EDIT:
An example of semantic patch:
From the documentation:
You have a good set of examples here.
The mailing list is really active and helpful.