xref: /utopia/UTPA2-700.0.x/projects/build/scripts/coccinelle/iterators/fen.cocci (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi/// These iterators only exit normally when the loop cursor is NULL, so there
2*53ee8cc1Swenshuai.xi/// is no point to call of_node_put on the final value.
3*53ee8cc1Swenshuai.xi///
4*53ee8cc1Swenshuai.xi// Confidence: High
5*53ee8cc1Swenshuai.xi// Copyright: (C) 2010 Nicolas Palix, DIKU.  GPLv2.
6*53ee8cc1Swenshuai.xi// Copyright: (C) 2010 Julia Lawall, DIKU.  GPLv2.
7*53ee8cc1Swenshuai.xi// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.  GPLv2.
8*53ee8cc1Swenshuai.xi// URL: http://coccinelle.lip6.fr/
9*53ee8cc1Swenshuai.xi// Comments:
10*53ee8cc1Swenshuai.xi// Options: -no_includes -include_headers
11*53ee8cc1Swenshuai.xi
12*53ee8cc1Swenshuai.xivirtual patch
13*53ee8cc1Swenshuai.xi
14*53ee8cc1Swenshuai.xi@@
15*53ee8cc1Swenshuai.xiiterator name for_each_node_by_name;
16*53ee8cc1Swenshuai.xiexpression np,E;
17*53ee8cc1Swenshuai.xiidentifier l;
18*53ee8cc1Swenshuai.xi@@
19*53ee8cc1Swenshuai.xi
20*53ee8cc1Swenshuai.xifor_each_node_by_name(np,...) {
21*53ee8cc1Swenshuai.xi  ... when != break;
22*53ee8cc1Swenshuai.xi      when != goto l;
23*53ee8cc1Swenshuai.xi}
24*53ee8cc1Swenshuai.xi... when != np = E
25*53ee8cc1Swenshuai.xi- of_node_put(np);
26*53ee8cc1Swenshuai.xi
27*53ee8cc1Swenshuai.xi@@
28*53ee8cc1Swenshuai.xiiterator name for_each_node_by_type;
29*53ee8cc1Swenshuai.xiexpression np,E;
30*53ee8cc1Swenshuai.xiidentifier l;
31*53ee8cc1Swenshuai.xi@@
32*53ee8cc1Swenshuai.xi
33*53ee8cc1Swenshuai.xifor_each_node_by_type(np,...) {
34*53ee8cc1Swenshuai.xi  ... when != break;
35*53ee8cc1Swenshuai.xi      when != goto l;
36*53ee8cc1Swenshuai.xi}
37*53ee8cc1Swenshuai.xi... when != np = E
38*53ee8cc1Swenshuai.xi- of_node_put(np);
39*53ee8cc1Swenshuai.xi
40*53ee8cc1Swenshuai.xi@@
41*53ee8cc1Swenshuai.xiiterator name for_each_compatible_node;
42*53ee8cc1Swenshuai.xiexpression np,E;
43*53ee8cc1Swenshuai.xiidentifier l;
44*53ee8cc1Swenshuai.xi@@
45*53ee8cc1Swenshuai.xi
46*53ee8cc1Swenshuai.xifor_each_compatible_node(np,...) {
47*53ee8cc1Swenshuai.xi  ... when != break;
48*53ee8cc1Swenshuai.xi      when != goto l;
49*53ee8cc1Swenshuai.xi}
50*53ee8cc1Swenshuai.xi... when != np = E
51*53ee8cc1Swenshuai.xi- of_node_put(np);
52*53ee8cc1Swenshuai.xi
53*53ee8cc1Swenshuai.xi@@
54*53ee8cc1Swenshuai.xiiterator name for_each_matching_node;
55*53ee8cc1Swenshuai.xiexpression np,E;
56*53ee8cc1Swenshuai.xiidentifier l;
57*53ee8cc1Swenshuai.xi@@
58*53ee8cc1Swenshuai.xi
59*53ee8cc1Swenshuai.xifor_each_matching_node(np,...) {
60*53ee8cc1Swenshuai.xi  ... when != break;
61*53ee8cc1Swenshuai.xi      when != goto l;
62*53ee8cc1Swenshuai.xi}
63*53ee8cc1Swenshuai.xi... when != np = E
64*53ee8cc1Swenshuai.xi- of_node_put(np);
65