Brian Cassidy > CQL-Parser-1.13 > CQL::Visitor

Download:
CQL-Parser-1.13.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source  

NAME ^

CQL::Visitor - visit nodes in a CQL parse tree

SYNOPSIS ^

    package MyVisitor;
    use base qw( CQL::Visitor );

    sub term {
        my ($self,$node) = @_;
        # do something to the node
    }

    # later on
   
    my $parser = CQL::Parser->new();
    my $root = $parser->parse($cql);

    my $visitor = MyVisitor->new();
    $vistor->visit($root);

DESCRIPTION ^

CQL::Visitor provides a simple interface for visiting nodes in your parse tree. It could be useful if you want to do something like change a query like this:

    dc.title=foo and dc.creator=bar 

    into

    title=foo and creator=bar

Or some similar procedure. You simply create a new subclass of CQL::Visitor and override the appropriate method, such as term(). Every term that is encountered during the traversal will be handed off to your term() method.

Note: at the moment only term() is supported because that's what was needed, but if you need other ones feel free to add them, or ask for them.

METHODS ^

new()

visit()

Call this to traverse your parse tree, starting at the root.

term()

Your subclass should override this, and do something meaningful with the CQL::TermNode object.

syntax highlighting: