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