Lines Matching refs:cb

124 void AstNode::TransformChildrenRecursively(const NodeTransformer &cb, std::string_view transformationName)
126 TransformChildrenRecursivelyPostorder(cb, transformationName);
129 void AstNode::TransformChildrenRecursivelyPreorder(const NodeTransformer &cb, std::string_view transformationName)
133 auto *res = cb(child);
134 res->TransformChildrenRecursivelyPreorder(cb, transformationName);
140 void AstNode::TransformChildrenRecursivelyPostorder(const NodeTransformer &cb, std::string_view transformationName)
144 child->TransformChildrenRecursivelyPostorder(cb, transformationName);
145 return cb(child);
150 void AstNode::IterateRecursively(const NodeTraverser &cb) const
152 IterateRecursivelyPreorder(cb);
155 void AstNode::IterateRecursivelyPreorder(const NodeTraverser &cb) const
158 cb(child);
159 child->IterateRecursivelyPreorder(cb);
163 void AstNode::IterateRecursivelyPostorder(const NodeTraverser &cb) const
166 child->IterateRecursivelyPostorder(cb);
167 cb(child);
171 void AnyChildHelper(bool *found, const NodePredicate &cb, AstNode *ast)
177 if (cb(ast)) {
182 ast->Iterate([=](AstNode *child) { AnyChildHelper(found, cb, child); });
185 bool AstNode::IsAnyChild(const NodePredicate &cb) const
188 Iterate([&found, cb](AstNode *child) { AnyChildHelper(&found, cb, child); });
192 void FindChildHelper(AstNode *&found, const NodePredicate &cb, AstNode *ast)
198 if (cb(ast)) {
203 ast->Iterate([&found, cb](AstNode *child) { FindChildHelper(found, cb, child); });
206 AstNode *AstNode::FindChild(const NodePredicate &cb) const
209 Iterate([&found, cb](AstNode *child) { FindChildHelper(found, cb, child); });