1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
package PPI::Token::_QuoteEngine::Simple;
# Simple quote engine
use strict;
use base 'PPI::Token::_QuoteEngine';
use vars qw{$VERSION};
BEGIN {
$VERSION = '0.903';
}
sub new {
my $class = shift;
my $seperator = shift or return undef;
# Create a new token containing the seperator
### This manual SUPER'ing ONLY works because none of
### Token::Quote, Token::QuoteLike and Token::Regexp
### implement a new function of their own.
my $self = PPI::Token::new( $class, $seperator ) or return undef;
$self->{seperator} = $seperator;
$self;
}
sub _fill {
my $class = shift;
my $t = shift;
my $self = $t->{token} or return undef;
# Scan for the end seperator
my $string = $self->_scan_for_unescaped_character( $t, $self->{seperator} );
return undef unless defined $string;
if ( ref $string ) {
# End of file
$self->{content} .= $$string;
return 0;
} else {
# End of string
$self->{content} .= $string;
return $self;
}
}
sub string {
my $self = shift;
substr( $self->{content}, 1, length($self->{content}) - 2 );
}
1;
|