| Apache-XPointer-RDQL documentation | Contained in the Apache-XPointer-RDQL distribution. |
Apache::XPointer::RDQL::Parser - Apache::XPointer::RDQL specific methods for RDQL::Parser
use Apache:::XPointer::RDQL::Parser;
my $query = "SELECT ...";
my $parser = Apache::XPointer::RDQL::Parser->new();
$parser->parse($query);
foreach my $var ($parser->bind_variables()) {
my ($prefix, $localname) = $parser->bind_predicate($var);
my $uri = $parser->lookup_namespaceURI($prefix);
}
Apache::XPointer::RDQL specific methods for RDQL::Parser.
This pacakages subclasses RDQL::Parser a defines the following helper methods :
Returns the original RDQL query string.
Returns a list.
Returns a list containting a prefix and a localname.
Returns a string.
1.1
$Date: 2004/11/16 04:36:26 $
Aaron Straup Cope <ascope@cpan.org>
Copyright (c) 2004 Aaron Straup Cope. All rights reserved.
This is free software, you may use it and distribute it under the same terms as Perl itself.
| Apache-XPointer-RDQL documentation | Contained in the Apache-XPointer-RDQL distribution. |
# $Id: Parser.pm,v 1.6 2004/11/16 04:36:26 asc Exp $ use strict; package Apache::XPointer::RDQL::Parser; use base qw (RDQL::Parser); $Apache::XPointer::RDQL::Parser::VERSION = '1.1';
use overload qq("") => sub { my $self = shift; return $self->query_string(); }; sub parse { my $self = shift; my $query = shift; $self->{'__query'} = $query; return $self->SUPER::parse($query); }
sub query_string { my $self = shift; return $self->{'__query'}; }
sub bind_variables { my $self = shift; return map { $_ =~ /^\?(.*)/; $1; } @{$self->{'resultVars'}}; }
sub bind_predicate { my $self = shift; my $bind_variable = shift; foreach my $spo (@{$self->{'triplePatterns'}}) { if ($spo->[2] eq "?$bind_variable") { $spo->[1] =~ /^<([^:]+)::([^>]+)>$/; return ($1,$2); } } return undef; }
sub lookup_namespaceURI { my $self = shift; my $prefix = shift; if (! exists($self->{'prefixes'}->{$prefix})) { return undef; } return $self->{'prefixes'}->{$prefix}; }
return 1;