Coccinelle archive on lore.kernel.org
 help / color / Atom feed
* [Cocci] Checking the parsing for a nested SmPL disjunction
@ 2020-06-26 17:35 Markus Elfring
  2020-06-26 18:20 ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Markus Elfring @ 2020-06-26 17:35 UTC (permalink / raw)
  To: Coccinelle

Hello,

I have tried another small script variant out for the semantic patch language
(according to the software combination “Coccinelle 1.0.8-00131-g675b9670”).

@display@
type t1, t2;
expression action;
identifier resource, y;
statement is, es;
@@
 t1* resource;
 <+... when any
(t2 y = <+...
(       sizeof(*(resource))
|
*       *(resource)
)       ...+>
|
*action(..., resource, ...)
)
 ...+>


elfring@Sonne:~/Projekte/Coccinelle/janitor> spatch --parse-cocci show_problematic_disjunction-20200626.cocci
…
minus: parse error:
  File "show_problematic_disjunction-20200626.cocci", line 14, column 0, charpos = 196
  around = '|',
  whole content = |


May I expect that such SmPL disjunctions should also work?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 17:35 [Cocci] Checking the parsing for a nested SmPL disjunction Markus Elfring
@ 2020-06-26 18:20 ` Julia Lawall
  2020-06-26 18:30   ` Markus Elfring
  0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2020-06-26 18:20 UTC (permalink / raw)
  To: Markus Elfring; +Cc: Coccinelle


[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]



On Fri, 26 Jun 2020, Markus Elfring wrote:

> Hello,
>
> I have tried another small script variant out for the semantic patch language
> (according to the software combination “Coccinelle 1.0.8-00131-g675b9670”).
>
> @display@
> type t1, t2;
> expression action;
> identifier resource, y;
> statement is, es;
> @@
>  t1* resource;
>  <+... when any
> (t2 y = <+...
> (       sizeof(*(resource))
> |
> *       *(resource)
> )       ...+>

You are missing a ; here.

julia


> |
> *action(..., resource, ...)
> )
>  ...+>
>
>
> elfring@Sonne:~/Projekte/Coccinelle/janitor> spatch --parse-cocci show_problematic_disjunction-20200626.cocci
> …
> minus: parse error:
>   File "show_problematic_disjunction-20200626.cocci", line 14, column 0, charpos = 196
>   around = '|',
>   whole content = |
>
>
> May I expect that such SmPL disjunctions should also work?
>
> Regards,
> Markus
> _______________________________________________
> Cocci mailing list
> Cocci@systeme.lip6.fr
> https://systeme.lip6.fr/mailman/listinfo/cocci
>

[-- Attachment #2: Type: text/plain, Size: 136 bytes --]

_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:20 ` Julia Lawall
@ 2020-06-26 18:30   ` Markus Elfring
  2020-06-26 18:35     ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Markus Elfring @ 2020-06-26 18:30 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Coccinelle

>>  <+... when any
>> (t2 y = <+...
>> (       sizeof(*(resource))
>> |
>> *       *(resource)
>> )       ...+>
>
> You are missing a ; here.

I assumed that I may omit the semicolon in such a SmPL code.
Can the specification of a SmPL nest construct ever be sufficient here?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:30   ` Markus Elfring
@ 2020-06-26 18:35     ` Julia Lawall
  2020-06-26 18:38       ` Markus Elfring
  0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2020-06-26 18:35 UTC (permalink / raw)
  To: Markus Elfring; +Cc: Coccinelle



On Fri, 26 Jun 2020, Markus Elfring wrote:

> >>  <+... when any
> >> (t2 y = <+...
> >> (       sizeof(*(resource))
> >> |
> >> *       *(resource)
> >> )       ...+>
> >
> > You are missing a ; here.
>
> I assumed that I may omit the semicolon in such a SmPL code.
> Can the specification of a SmPL nest construct ever be sufficient here?

No.  <+... ...+> matches a subtree of an AST.  For a variable
initialization, there is no subtree of the AST that includes both the
right side of an = and the ;.

julia
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:35     ` Julia Lawall
@ 2020-06-26 18:38       ` Markus Elfring
  2020-06-26 18:42         ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Markus Elfring @ 2020-06-26 18:38 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Coccinelle

>> I assumed that I may omit the semicolon in such a SmPL code.
>> Can the specification of a SmPL nest construct ever be sufficient here?
>
> No.  <+... ...+> matches a subtree of an AST.  For a variable
> initialization, there is no subtree of the AST that includes both the
> right side of an = and the ;.

Can the abstract syntax tree be adjusted accordingly?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:38       ` Markus Elfring
@ 2020-06-26 18:42         ` Julia Lawall
  2020-06-26 18:48           ` Markus Elfring
  0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2020-06-26 18:42 UTC (permalink / raw)
  To: Markus Elfring; +Cc: Coccinelle



On Fri, 26 Jun 2020, Markus Elfring wrote:

> >> I assumed that I may omit the semicolon in such a SmPL code.
> >> Can the specification of a SmPL nest construct ever be sufficient here?
> >
> > No.  <+... ...+> matches a subtree of an AST.  For a variable
> > initialization, there is no subtree of the AST that includes both the
> > right side of an = and the ;.
>
> Can the abstract syntax tree be adjusted accordingly?

No.

julia
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:42         ` Julia Lawall
@ 2020-06-26 18:48           ` Markus Elfring
  2020-06-26 18:49             ` Julia Lawall
  0 siblings, 1 reply; 8+ messages in thread
From: Markus Elfring @ 2020-06-26 18:48 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Coccinelle

>>>> I assumed that I may omit the semicolon in such a SmPL code.
>>>> Can the specification of a SmPL nest construct ever be sufficient here?
>>>
>>> No.  <+... ...+> matches a subtree of an AST.  For a variable
>>> initialization, there is no subtree of the AST that includes both the
>>> right side of an = and the ;.
>>
>> Can the abstract syntax tree be adjusted accordingly?
>
> No.

Can such a rejection mean that software development efforts look undesirable
(while adjustments for the data model would eventually be possible)?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [Cocci] Checking the parsing for a nested SmPL disjunction
  2020-06-26 18:48           ` Markus Elfring
@ 2020-06-26 18:49             ` Julia Lawall
  0 siblings, 0 replies; 8+ messages in thread
From: Julia Lawall @ 2020-06-26 18:49 UTC (permalink / raw)
  To: Markus Elfring; +Cc: Coccinelle



On Fri, 26 Jun 2020, Markus Elfring wrote:

> >>>> I assumed that I may omit the semicolon in such a SmPL code.
> >>>> Can the specification of a SmPL nest construct ever be sufficient here?
> >>>
> >>> No.  <+... ...+> matches a subtree of an AST.  For a variable
> >>> initialization, there is no subtree of the AST that includes both the
> >>> right side of an = and the ;.
> >>
> >> Can the abstract syntax tree be adjusted accordingly?
> >
> > No.
>
> Can such a rejection mean that software development efforts look undesirable
> (while adjustments for the data model would eventually be possible)?

No, it means that it makes no sense and it is not going to happen.

julia
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

end of thread, back to index

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-26 17:35 [Cocci] Checking the parsing for a nested SmPL disjunction Markus Elfring
2020-06-26 18:20 ` Julia Lawall
2020-06-26 18:30   ` Markus Elfring
2020-06-26 18:35     ` Julia Lawall
2020-06-26 18:38       ` Markus Elfring
2020-06-26 18:42         ` Julia Lawall
2020-06-26 18:48           ` Markus Elfring
2020-06-26 18:49             ` Julia Lawall

Coccinelle archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/cocci/0 cocci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 cocci cocci/ https://lore.kernel.org/cocci \
		cocci@systeme.lip6.fr
	public-inbox-index cocci

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/fr.lip6.systeme.cocci


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git