getIterator method
Implementation
Iterable<Expression<dynamic>> getIterator() sync* {
var stack = Queue<Expression<dynamic>>.from([this]);
var visitedExpressions = <Expression>{this};
while (stack.isNotEmpty) {
var expression = stack.removeLast();
visitedExpressions.add(expression);
yield expression;
var childExpressions = expression.getChildren();
childExpressions.forEach((e) {
if (!visitedExpressions.contains(e)) {
stack.addLast(e);
}
});
}
}