класс Prism::Visitor
Визитор — это класс, предоставляющий реализацию по умолчанию для каждого метода accept, определенного для узлов. Это означает, что он может пройти по дереву, без необходимости для вызывающей стороны определять специальную обработку. Это позволяет обрабатывать подмножество дерева, при этом проходя по всему дереву.
Например, чтобы найти все вызовы методов, которые вызывают метод «foo», можно написать:
class FooCalls < Prism::Visitor
def visit_call_node(node)
if node.name == "foo"
# Do something with the node
end
# Call super so that the visitor continues walking the tree
super
end
end
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.