On Mon, 6 Oct 2014, jmiguel hernandez wrote:
>
> Forgot to reply to the list :S
>
>
> Thank you,
> i was trying to Move a any field from a structure inside a data structure
> a.
>
> @@
> typedef interface;
> interface *p;
> identifier fld;
> @@
> p->field1
> -.fld
> +.a.fld
>
> But it looks like it is not matching anything. The type for p must match,
> and also the name of field1.
> i am moving some elements from field1 into "struct a" which is on field1. So
> ideally, i was thinking on using a dependencylike
> https://github.com/coccinelle/coccinellery/blob/master/iserr/patch1.co
> cci for the exceptions.
Could you send a small example of C code before and after the expected
transformation?
thanks,
julia
> but at this point i will be satified if i can just move everything from
> field1 into a.
> I also tried this, and defining fld as field instead of identifier.
>
> @@
> typedef interface;
> interface *p;
> identifier fld;
> @@
> -p->field1.fld
> +p->field1.a.fld
>
> i am sorry i am just getting to understand the grammar. I wonder if there is
> an example slightly similar about structure transformations i could read.
> Thanks
>
>
> On Thu, Oct 2, 2014 at 3:44 PM, Lars-Peter Clausen <[email protected]> wrote:
> On 10/02/2014 10:12 PM, jmiguel hernandez wrote:
> if i have this
>
> typedef struct type1 {
> char8 a;
> char8 b;
> char8 c;
> }
>
> typedef struct _interface {
> type1 field1;
> }interface;
>
> and want to change to
>
> typedef struct type1 {
> char8 d;
> char8 b;
> char8 c;
> }
>
> typedef struct _protocol {
> type1 *field1;
> }interface;
>
> interface *p
>
> -p->field->a
> +p->field->d
>
> I have tried just changing field1 to field2. This
> gives parsing errors.
>
> @@
> typedef interface;
> interface *p;
> typedef type1;
> type1 field1;
> @@
> <...
> -p->field1
> +p->fieldnew
> ...>
>
>
> If you want to change the field from being embedded in the parent
> struct to a pointer and rename the field at the same time the way to
> go is
>
> @@
> typedef interface;
> interface *p;
> @@
> p->field1
> -.a
> +->b
>
> That replaces the ".a" with a "->b"
>
> - Lars
>
>
>
>
>
>_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci