Provided by: libattean-perl_0.012-1_all 

NAME
Attean::TreeRewriter - Walk and rewrite subtrees
VERSION
This document describes Attean::TreeRewriter version 0.012
SYNOPSIS
use v5.14;
use Attean;
my $w = Attean::TreeRewriter->new();
my ($rewritten, $tree) = $w->rewrite($tree, $thunk);
if ($rewritten) {
...
}
DESCRIPTION
The Attean::TreeRewriter class walks the nodes of query trees and rewrites sub-trees based on handlers
that have been registered prior to rewriting.
ROLES
None.
METHODS
"register_pre_handler( \&code )"
Register a handler that will be called for each sub-tree during tree rewriting.
The function will be called as "&code( $tree, $parent_node, $thunk )" where $thunk is an opaque value
passed to "rewrite".
The function must return a list "($handled, $descend, $rewritten)". $handled is a boolean indicating
whether the handler function rewrote the sub-tree, which is returned as $rewritten. The $descend
boolean value indicates whether the the tree rewriting should continue downwards in the tree.
"rewrite( $tree, $thunk, \%seen, $parent )"
Rewrites the given $tree using the registered handler functions. $thunk is passed through to each
handler function. %seen is currently unused. $parent is passed through to the handler functions as
the value of the pseudo-parent tree node for $tree.
Returns a list "($handled, $tree)" with $handled indicating whether rewriting was performed, with the
corresponding rewritten $tree.
BUGS
Please report any bugs or feature requests to through the GitHub web interface at
<https://github.com/kasei/attean/issues>.
SEE ALSO
<http://www.perlrdf.org/>
AUTHOR
Gregory Todd Williams "<gwilliams@cpan.org>"
COPYRIGHT
Copyright (c) 2014--2016 Gregory Todd Williams. This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
perl v5.22.1 2016-02-04 Attean::TreeRewriter(3pm)