public inbox for cocci@systeme.lip6.fr
 help / color / mirror / Atom feed
* [Cocci] parameter list to expression list?
@ 2013-03-25 16:09 Michael Stefaniuc
  2013-03-25 21:27 ` Julia Lawall
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Stefaniuc @ 2013-03-25 16:09 UTC (permalink / raw)
  To: cocci

Hello,

is there an intrinsic way to get from a parameter list to an expression
list? That would come in handy when forwarding from one function to
another one. At the moment I help myself with a python rule that
transforms the parameter list to an identifier but that feels clumsy.
E.g. in SmPL pseudo code something like this would be nice:

@@
type T;
parameter list P;
expression list E = P;
expression ret;
@@
 T foo(P)
 {
     return
-           ret
+           bar(E)
     ;
 }



thanks
bye
	michael

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Cocci] parameter list to expression list?
  2013-03-25 16:09 [Cocci] parameter list to expression list? Michael Stefaniuc
@ 2013-03-25 21:27 ` Julia Lawall
  2013-03-25 22:56   ` Michael Stefaniuc
  0 siblings, 1 reply; 5+ messages in thread
From: Julia Lawall @ 2013-03-25 21:27 UTC (permalink / raw)
  To: cocci

On Mon, 25 Mar 2013, Michael Stefaniuc wrote:

> Hello,
> 
> is there an intrinsic way to get from a parameter list to an expression
> list? That would come in handy when forwarding from one function to
> another one. At the moment I help myself with a python rule that
> transforms the parameter list to an identifier but that feels clumsy.
> E.g. in SmPL pseudo code something like this would be nice:
> 
> @@
> type T;
> parameter list P;
> expression list E = P;
> expression ret;
> @@
>  T foo(P)
>  {
>      return
> -           ret
> +           bar(E)
>      ;
>  }

No, there is nothing. I guess your transformation gets rid of the types in 
the parameter list?  Perhaps what you would liek is a way to just match 
the list of identifier parts?

julia

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Cocci] parameter list to expression list?
  2013-03-25 21:27 ` Julia Lawall
@ 2013-03-25 22:56   ` Michael Stefaniuc
       [not found]     ` <alpine.DEB.2.02.1303271828220.1904@hadrien>
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Stefaniuc @ 2013-03-25 22:56 UTC (permalink / raw)
  To: cocci

On 03/25/2013 10:27 PM, Julia Lawall wrote:
> On Mon, 25 Mar 2013, Michael Stefaniuc wrote:
> 
>> Hello,
>>
>> is there an intrinsic way to get from a parameter list to an expression
>> list? That would come in handy when forwarding from one function to
>> another one. At the moment I help myself with a python rule that
>> transforms the parameter list to an identifier but that feels clumsy.
>> E.g. in SmPL pseudo code something like this would be nice:
>>
>> @@
>> type T;
>> parameter list P;
>> expression list E = P;
>> expression ret;
>> @@
>>  T foo(P)
>>  {
>>      return
>> -           ret
>> +           bar(E)
>>      ;
>>  }
> 
> No, there is nothing. I guess your transformation gets rid of the types in 
> the parameter list?  Perhaps what you would liek is a way to just match 
> the list of identifier parts?
Yes, something like that.
What I do now is:

@script:python new@
params << get.params;
args;
@@
import re
for p in params.elements:
    coccinelle.args += ", " + re.sub(r".* (\w+)$", r"\1", p)

thanks
bye
        michael

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Cocci] parameter list to expression list?
       [not found]     ` <alpine.DEB.2.02.1303271828220.1904@hadrien>
@ 2013-04-08  8:57       ` Michael Stefaniuc
  2013-04-08  8:59         ` Julia Lawall
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Stefaniuc @ 2013-04-08  8:57 UTC (permalink / raw)
  To: cocci

Hello Julia,

On 03/27/2013 06:31 PM, Julia Lawall wrote:
> Could you try the attached patch?  The line numbers are almost certain not
> to work out, but maybe it will be able to figure out what to do.
sorry for the late reply. The patch works like a charm.

Thanks!
bye
	michael

> 
> The idea is to do the following:
> 
> @r@
> parameter list P;
> expression list E;
> @@
> 
> main(P at E) {
> + foo(E);
>   return 0;
> }
> 
> julia
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Cocci] parameter list to expression list?
  2013-04-08  8:57       ` Michael Stefaniuc
@ 2013-04-08  8:59         ` Julia Lawall
  0 siblings, 0 replies; 5+ messages in thread
From: Julia Lawall @ 2013-04-08  8:59 UTC (permalink / raw)
  To: cocci

On Mon, 8 Apr 2013, Michael Stefaniuc wrote:

> Hello Julia,
>
> On 03/27/2013 06:31 PM, Julia Lawall wrote:
> > Could you try the attached patch?  The line numbers are almost certain not
> > to work out, but maybe it will be able to figure out what to do.
> sorry for the late reply. The patch works like a charm.

Great.  It is in rc17.

julia

>
> Thanks!
> bye
> 	michael
>
> >
> > The idea is to do the following:
> >
> > @r@
> > parameter list P;
> > expression list E;
> > @@
> >
> > main(P at E) {
> > + foo(E);
> >   return 0;
> > }
> >
> > julia
> >
>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-04-08  8:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-25 16:09 [Cocci] parameter list to expression list? Michael Stefaniuc
2013-03-25 21:27 ` Julia Lawall
2013-03-25 22:56   ` Michael Stefaniuc
     [not found]     ` <alpine.DEB.2.02.1303271828220.1904@hadrien>
2013-04-08  8:57       ` Michael Stefaniuc
2013-04-08  8:59         ` Julia Lawall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox