Data-SExpression
view release on metacpan or search on metacpan
lib/Data/SExpression/Parser.pm view on Meta::CPAN
1;
}
#End of include--------------------------------------------------
#line 9 "lib/Data/SExpression/Parser.yp"
use Data::SExpression::Cons;
use Scalar::Util qw(weaken);
sub new {
my($class)=shift;
ref($class)
and $class=ref($class);
my($self)=$class->SUPER::new( yyversion => '1.05',
yystates =>
[
lib/Data/SExpression/Parser.pm view on Meta::CPAN
my $self = shift;
my $input = shift;
die(__PACKAGE__ . "::set_input called with 0 arguments") unless defined($input);
$self->YYData->{INPUT} = $input;
}
sub set_handler {
my $self = shift;
my $handler = shift or die(__PACKAGE__ . "::set_handler called with 0 arguments");
$self->YYData->{HANDLER} = $handler;
weaken $self->YYData->{HANDLER};
}
sub handler {
my $self = shift;
return $self->YYData->{HANDLER};
}
sub unparsed_input {
my $self = shift;
return substr($self->YYData->{INPUT}, pos($self->YYData->{INPUT}));
lib/Data/SExpression/Parser.yp view on Meta::CPAN
# -*- mode: perl -*-
#
# Parser.yp
#
# Grammar to parse SExpressions for Data::SExpression
#
#
%{
use Data::SExpression::Cons;
use Scalar::Util qw(weaken);
%}
%%
sexpression: expression { $_[0]->YYAccept; return $_[1]; }
;
expression: NUMBER
| SYMBOL { $_[0]->handler->new_symbol($_[1]) }
| STRING { $_[0]->handler->new_string($_[1]) }
lib/Data/SExpression/Parser.yp view on Meta::CPAN
my $self = shift;
my $input = shift;
die(__PACKAGE__ . "::set_input called with 0 arguments") unless defined($input);
$self->YYData->{INPUT} = $input;
}
sub set_handler {
my $self = shift;
my $handler = shift or die(__PACKAGE__ . "::set_handler called with 0 arguments");
$self->YYData->{HANDLER} = $handler;
weaken $self->YYData->{HANDLER};
}
sub handler {
my $self = shift;
return $self->YYData->{HANDLER};
}
sub unparsed_input {
my $self = shift;
return substr($self->YYData->{INPUT}, pos($self->YYData->{INPUT}));
( run in 0.287 second using v1.01-cache-2.11-cpan-e5176c747c2 )