����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
package Pegex::Input;
use Pegex::Base;
has string => ();
has stringref => ();
has file => ();
has handle => ();
has _buffer => ();
has _is_eof => 0;
has _is_open => 0;
has _is_close => 0;
# NOTE: Current implementation reads entire input into _buffer on open().
sub read {
my ($self) = @_;
die "Attempted Pegex::Input::read before open" if not $self->{_is_open};
die "Attempted Pegex::Input::read after EOF" if $self->{_is_eof};
my $buffer = $self->{_buffer};
$self->{_buffer} = undef;
$self->{_is_eof} = 1;
return $buffer;
}
sub open {
my ($self) = @_;
die "Attempted to reopen Pegex::Input object"
if $self->{_is_open} or $self->{_is_close};
if (my $ref = $self->{stringref}) {
$self->{_buffer} = $ref;
}
elsif (my $handle = $self->{handle}) {
$self->{_buffer} = \ do { local $/; <$handle> };
}
elsif (my $path = $self->{file}) {
open my $handle, $path
or die "Pegex::Input can't open $path for input:\n$!";
$self->{_buffer} = \ do { local $/; <$handle> };
}
elsif (exists $self->{string}) {
$self->{_buffer} = \$self->{string};
}
else {
die "Pegex::Input::open failed. No source to open";
}
$self->{_is_open} = 1;
return $self;
}
sub close {
my ($self) = @_;
die "Attempted to close an unopen Pegex::Input object"
if $self->{_is_close};
close $self->{handle} if $self->{handle};
$self->{_is_open} = 0;
$self->{_is_close} = 1;
$self->{_buffer} = undef;
return $self;
}
1;
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Base.pm | File | 2.26 KB | 0644 |
|
| Bootstrap.pm | File | 13.7 KB | 0644 |
|
| Compiler.pm | File | 4.68 KB | 0644 |
|
| Grammar.pm | File | 3.25 KB | 0644 |
|
| Input.pm | File | 1.53 KB | 0644 |
|
| Optimizer.pm | File | 3.81 KB | 0644 |
|
| Parser.pm | File | 7.67 KB | 0644 |
|
| Receiver.pm | File | 465 B | 0644 |
|
| Tree.pm | File | 311 B | 0644 |
|