A Statement tree walker that will visit each Statement s in the tree,
in depth-first evaluation order, and call fp(s,param) on it.
fp() signals whether the walking continues with its return value:
0 continue
1 done
It's a bit slower than using virtual functions, but more encapsulated and less brittle.
Creating an iterator for this would be much more complex.
A Statement tree walker that will visit each Statement s in the tree, in depth-first evaluation order, and call fp(s,param) on it. fp() signals whether the walking continues with its return value: