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 )